#ifndef __WIZ_BNF_PARSER_BINARY_HPP__SHANHAOBO_19800429__
#define __WIZ_BNF_PARSER_BINARY_HPP__SHANHAOBO_19800429__

#include "./WizBNFParser.hpp"

namespace Wiz
{
    namespace BNF
    {
        namespace Parser
        {
            namespace Binary
            {
                template <typename LeftT, typename RightT, typename BaseT>
                struct Type : public BaseT
                {
                    typedef ::Wiz::BNF::Parser::Category::Binary    tCategory;
                    typedef BaseT                                   tSuper;
                    typedef const LeftT&                            tLeftIn;
                    typedef const RightT&                           tRightIn;
                    typedef const LeftT&                            tLeftResult;
                    typedef const RightT&                           tRightResult;
                    typedef typename LeftT::tEmbedded               tLeftEmbedded;
                    typedef typename RightT::tEmbedded              tRightEmbedded;

                    Type(tLeftIn Lft, tRightIn Rght) : tSuper(), m_Left(Lft), m_Right(Rght)
                    {}

                    tLeftResult Left() const
                    {
                        return m_Left;
                    }

                    tRightResult Right() const
                    {
                        return m_Right;
                    }

                    tLeftEmbedded  m_Left;
                    tRightEmbedded  m_Right;
                }; /// end of struct Type
            } /// end of namespace Binary
        } /// end of namespace Parser
    } /// end of namespace BNF
} /// end of namespace Wiz

#endif /*__WIZ_BNF_PARSER_BINARY_HPP__SHANHAOBO_19800429__*/
